package OOA.com.JavaBasis.inherit;
/*
* this关键字的3中用法
*
* 1.在本类的成员方法中，可以访问本类的成员变量
* 2.在本类的成员方法中，可以访问本类的其他成员方法
* 3.在本类的构造方法中，可以访问本类的其他构造方法【注意避免出现死循环】
*
* 注意：构造方法不可以调用自己
* */
public class ThisDemo {
    public static void main(String[] args) {
        Son son = new Son();
        son.f();
    }
}
class Father{
    int a = 1;
}
class Son extends Father{


    int a = 2;

    public Son(){
        //这个表示下面的有参构造需要传一个参数，避免出现死循环
        //this(2)
    }
    public Son(int a){
        //在本类的构造方法中，可以访问本类的其他构造方法,this()表示上面的那个无参构造
        this();
    }

    public void f(){
        int a = 3;
        System.out.println(a);
        System.out.println(this.a);
        System.out.println(super.a);
    }

    public void s(){
        this.f();//访问本类的其他成员方法
    }
}